import { defineConfig } from 'vite'
import uni from '@dcloudio/vite-plugin-uni'

export default defineConfig({
  server: {
    proxy: {
      '/api': {
        // 开发环境代理配置
        // 方式1：连接本地服务器（局域网开发）
        target: 'http://192.168.1.7:8081',

        // 方式2：连接外网服务器（远程开发）⭐ 当前使用
        // target: 'http://111.53.165.56:8081',

        changeOrigin: true,
        // 不重写路径，因为后端 API 路径就是 /api/xxx
        // rewrite: (path) => path.replace(/^\/api/, ''),
      },
    },
  },
  build: {
    // 开发阶段启用源码映射
    sourcemap: process.env.NODE_ENV === 'development',
    // 强制禁用代码分割，避免与 iife 格式冲突
    rollupOptions: {
      output: {
        // 将所有代码打包到单个文件中
        inlineDynamicImports: true,
      },
    },
  },
  plugins: [
    uni(),
    // 自定义插件：强制覆盖输出格式配置
    {
      name: 'override-output-format',
      enforce: 'post',
      config(config, { command }) {
        if (command === 'build') {
          // 确保 rollup 配置存在
          config.build = config.build || {}
          config.build.rollupOptions = config.build.rollupOptions || {}
          config.build.rollupOptions.output = config.build.rollupOptions.output || {}

          // 强制设置为单文件输出
          if (Array.isArray(config.build.rollupOptions.output)) {
            config.build.rollupOptions.output.forEach((output: any) => {
              output.inlineDynamicImports = true
              delete output.manualChunks
            })
          } else {
            config.build.rollupOptions.output.inlineDynamicImports = true
            delete config.build.rollupOptions.output.manualChunks
          }
        }
      },
    },
  ],
  css: {
    preprocessorOptions: {
      scss: {
        // Sass 新版本配置，抑制弃用警告
        api: 'modern-compiler',
        silenceDeprecations: ['legacy-js-api', 'import'],
      },
    },
  },
})
